A business application deals with many types of business entities such as “Item”, “Customer”, etc. The physical records for each type of the logical business entity are stored in multiple tables in the database (e.g., SQL server). For example, the data for “Entity1” can be stored in tables such as [Entity1_Table1], [Entity1_Table2], [Entity1_Table3], etc. Moreover, these logical business entities can have relationships with each other that are tracked through foreign key referential integrity constraints in the database, for example, a transaction record refers to a customer record.
The data stored in the physical database is typically normalized. There are times when external data needs to be imported into the database or when changes to data in the database in a specific period need to be exported. The format or schema in which the data is exported or imported is typically in the logical form and not in the same normalized format in which the data exists in the database. For example, the logical entity “Item” needs to be represented through a schema as a single entity even if data for each item is stored in multiple physical database tables.
Moreover, in a business application, new entities can be introduced with new relationships. Sometimes, these new entities are created as part of customizing the business application for each customer. These new entities will also need to be represented with a logical schema in which the data for these entities will be imported from or exported to the application—this logical schema may again be different from the physical schema in which the data is stored in database tables. Existing techniques lack a generic framework for importing and exporting data that considers new entities being introduced into the business application.